package gjbsh.bangong.ds.controller;

import java.math.BigDecimal;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import gjbsh.bangong.ds.model.组织活动类型;
import gjbsh.bangong.ds.service.组织活动类型Service;
import gjbsh.support.JsonResult;
import gjbsh.support.StringHandle;


@RestController
@RequestMapping("zuzhihuodongleixing")
public class 组织活动类型Controller {
	
	private Logger logger = LoggerFactory.getLogger(getClass());
	
	@Autowired
	组织活动类型Service dd组织活动类型Service;
	

	// 查找一个
	@RequestMapping("find_one")
	public JsonResult<?> findOne(@RequestParam("huodongleixingid")String ppHuodongId){
		try {
			if("".equals(ppHuodongId)) {
				return JsonResult.getErrorResult("组织活动类型ID不能为空");
			}
			return JsonResult.getSuccessResult(dd组织活动类型Service.findOne(ppHuodongId));
		} catch (Exception e) {
			
			logger.error("组织活动类型Controller->find_one: "+e.getMessage());
			return JsonResult.getErrorResult("查询指定的组织活动类型失败");
		}
	}
	
	// 查询有效的活动类型
	@RequestMapping("find_valid")
	public JsonResult<?> findByValid(){
		try {		
			return JsonResult.getSuccessResult(dd组织活动类型Service.findValid());
		} catch (Exception e) {
			logger.error("组织活动类型Controller->find_valid: "+e.getMessage());
			return JsonResult.getErrorResult("查询有效的活动类型失败");
		}
	}
	
	// 查询所有的活动类型
	@RequestMapping("find_all")
	public JsonResult<?> findByAll(){
		try {		
			return JsonResult.getSuccessResult(dd组织活动类型Service.findAll());
		} catch (Exception e) {
			logger.error("组织活动类型Controller->find_all: "+e.getMessage());
			return JsonResult.getErrorResult("查询所有的活动类型失败");
		}
	}
	
   // 修改状态
	@RequestMapping("set_zhuangtai")
	public JsonResult<?> set_zhuangtai(@RequestParam("huodongleixingid")String ppHuodongleixingId,@RequestParam("zhuangtaiid")int ppZhuangtaiId,
			HttpServletRequest request){
		try {
			if("".equals(ppHuodongleixingId)) {
				return JsonResult.getErrorResult("活动类型ID不能为空");
			}
			
			组织活动类型 mm组织活动类型 = dd组织活动类型Service.findOne(ppHuodongleixingId);
			if(mm组织活动类型 == null) {
				return JsonResult.getErrorResult("该组织活动类型不存在");
			}
			
			mm组织活动类型.set状态(new BigDecimal(ppZhuangtaiId));
			boolean Isok = dd组织活动类型Service.modify(mm组织活动类型);
			
			if(Isok) {
				return JsonResult.getSuccessResult("修改成功");
			}else {
				return JsonResult.getErrorResult("修改失败");
			}
			
		} catch (Exception e) {
			logger.error("组织活动类型Controller->set_zhuangtai: "+e.getMessage());
			return JsonResult.getErrorResult("修改活动类型状态失败");
		}
	}
	
	// 修改
	@RequestMapping("modify")
	public JsonResult<?> findBelongToOrganByDeptId(@RequestParam("huodongleixingid")String ppHuodongleixingId,
			@RequestParam("mingcheng")String ppMingcheng,
			@RequestParam("yingwenmingcheng")String ppYingwenmingcheng){
		try {
			if("".equals(ppHuodongleixingId)) {
				return JsonResult.getErrorResult("活动类型ID不能为空");
			}
			组织活动类型 mm组织活动类型 = dd组织活动类型Service.findOne(ppHuodongleixingId);
			if(mm组织活动类型 == null) {
				return JsonResult.getErrorResult("该组织活动类型不存在");
			}
	
			mm组织活动类型.set组织活动类型名称(ppMingcheng);
			mm组织活动类型.set组织活动类型名称英文(ppYingwenmingcheng);
			
            boolean Isok = dd组织活动类型Service.modify(mm组织活动类型);
			
			if(Isok) {
				return JsonResult.getSuccessResult("修改成功");
			}else {
				return JsonResult.getErrorResult("修改失败");
			}
		} catch (Exception e) {
			logger.error("组织活动类型Controller->modify: "+e.getMessage());
			return JsonResult.getErrorResult("修改活动类型失败");
		}
	}
	
    // 添加
	@RequestMapping("add")
	public JsonResult<?> findCustomByDeptname(@RequestParam("mingcheng")String ppMingcheng,
			@RequestParam("yingwenmingcheng")String ppYingwenmingcheng){
		try {
			if("".equals(ppMingcheng)) {
				return JsonResult.getErrorResult("类型名称不能为空");
			}
			if(StringHandle.getStringByteLength(ppMingcheng) > 255) {
				return JsonResult.getErrorResult("类型名称不可超过255字节");
			}

			if(StringHandle.getStringByteLength(ppYingwenmingcheng) > 255) {
				return JsonResult.getErrorResult("类型英文名称不可超过255字节");
			}
			
			组织活动类型 mm组织活动类型 = new 组织活动类型();
			mm组织活动类型.set组织活动类型id(UUID.randomUUID().toString());
			mm组织活动类型.set组织活动类型名称(ppMingcheng);
			mm组织活动类型.set组织活动类型名称英文(ppYingwenmingcheng);
			mm组织活动类型.set状态(new BigDecimal(100));
			mm组织活动类型.set排序号(new BigDecimal(dd组织活动类型Service.findMaxXuhao()+1));
            boolean Isok = dd组织活动类型Service.add(mm组织活动类型);
			
			if(Isok) {
				return JsonResult.getSuccessResult("添加成功");
			}else {
				return JsonResult.getErrorResult("添加失败");
			}
			
		} catch (Exception e) {
			logger.error("组织活动类型Controller->add: "+e.getMessage());
			return JsonResult.getErrorResult("添加活动类型失败");
		}
	}
	
	
}
